Software development topics 您所在的位置:网站首页 software development engineer Software development topics

Software development topics

2024-07-16 07:18| 来源: 网络整理| 查看: 265

Before you dig into the technical topics you may be asked about during your interview, connect with your recruiting point of contact to understand the subjects/skills you’ll most likely be discussing and demonstrating. In general, our technical interviews typically require you to perform coding and system design white boarding exercises. Also keep in mind that invention is in our DNA, and technology is the fundamental tool we wield to evolve and improve every aspect of the experience we provide our customers. When reviewing the below topics, keep the customer top of mind.

An important part of Amazon’s Software Development Engineer hiring process is the completion of an online assessment which includes a coding test. We invite you to prepare for the experience by taking this sample coding challenge. You can become comfortable with the environment and experience practice questions which are similar to the actual assessment. You can click through this as many times as you’d like!

Interviewing for a software engineer role that requires at least 2 years of experience? Learn how to successfully demonstrate your skills in interviews.

Technical topics Programming language

We do not require that you know any specific programming language before interviewing for a tech position. However, familiarity with a prominent language is generally a prerequisite for success. You should be familiar with the syntax of languages such as C, C++, C++14, C#, Go, Java7, Java8, JavaScript, Kotlin, Objective-C, PyPy2, PyPy3, Python2, Python3, Ruby, Scala and Swift. You should also know some of the languages’ nuances, such as how memory management works, or the most commonly used collections, libraries, etc.

Data structures

Most of the work we do involves storing and providing access to data in efficient ways. This requires a strong background in data structures. You’ll need to understand the inner workings of common data structures and be able to compare and contrast their usage in various applications. You will be expected to know the runtimes for common operations as well as how they use memory.

Algorithms

Your interview will not be focused on rote memorization of algorithms. However, having a good understanding of the most common algorithms will likely make solving some of the questions a lot easier. Consider reviewing common algorithms such as traversals, divide and conquer, breadth-first search vs. depth-first search and understand the tradeoffs for each. Knowing the runtimes, theoretical limitations, and basic implementation strategies of different classes of algorithms is more important than memorizing the specific details of any given algorithm.

Coding

Expect to be asked to write syntactically correct code—no pseudo code. If you feel a bit rusty coding without an IDE or coding in a specific language, it’s a good idea to dust off the cobwebs and get comfortable coding with a pen and paper. The most important thing a Software Development Engineer does at Amazon is write scalable, robust, and well-tested code. These are the main evaluation criteria for your code. Make sure that you check for edge cases and validate that no bad input can slip through. This is your chance to show off your coding ability.

Object-oriented design

Good design is paramount to extensible, bug-free, long-lived code. We know it’s possible to solve any given software problem in almost limitless ways, but when software needs to be extensible and maintainable, good software design is critical to success. One way to build lasting software is to use object-oriented design best practices. You should have a working knowledge of a few common and useful design patterns, along with how to write software in an object-oriented way. You likely won’t be asked to describe the details of how specific design patterns work, but expect to have to defend your design choices.

Databases

Most of the software that we write is backed by a data store. Many of the challenges tech people face arise when figuring out how to most efficiently retrieve and store data for future use. Amazon has been at the forefront of the non-relational DB movement. We have made Amazon Web Services such as DynamoDB available to the developer community so that they can easily leverage the benefits of non-relational databases. While we don't expect any particular level of expertise with non-relational databases, you should be familiar with broad database concepts and their applications. The more you know about tradeoffs between relational and non-relational databases, the better prepared you will be.

Distributed computing

Systems at Amazon have to work under very strict tolerances at a high load. While we have some internal tools that help us with scaling, it’s important to have an understanding of a few basic distributed computing concepts. Understanding topics such as service-oriented architectures, map-reduce, distributed caching, load balancing, and others, will help you formulate answers to some of the more complicated distributed architecture questions you might encounter.

Operating systems

You won’t need to know how to build your own operating system from scratch, but you should be familiar with some OS topics that can affect code performance (e.g. memory management, processes, threads, synchronization, paging, and multithreading).

Internet topics

We expect our engineers to be familiar with the fundamentals of how the internet works. Brush up on how browsers function at a high level, from DNS lookups and TCP/IP, to socket connections. Having a solid understanding of the fundamentals of how the worldwide web works is a requirement.

General machine learning and artificial intelligence

Expect to be asked about data-driven modeling, train/test protocols, error analysis, and statistical significance. For example, given a problem definition, you should be able to formulate it as a machine learning problem and propose a solution, including ideas for data sources, annotation, modeling approaches, and potential pitfalls. Understand the basic AI/ML methods and algorithms – revisit your favorite ML and AI textbooks.

 

We understand this was a relatively long list of topics to review. Know that your interviewers won’t be evaluating your ability to memorize all of the details for each of these topics. They will be looking for your ability to apply what you know to solve problems efficiently and effectively. With (sometimes) limited time to prepare for a technical interview, we recommend reviewing computer science fundamentals and practicing coding outside of an integrated development environment. This will likely yield the best results for your time.

  Have more questions? EXPLORE INTERVIEWING AT AMAZON. CHECK OUT OUR FAQS. LEARN ABOUT OUR BENEFITS. EXPLORE OUR LOCATIONS.


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有